#include <iostream>
#include <sstream>
#include <string>
#include <memory>
#include <jsoncpp/json/json.h>
using std::cin;
using std::cout;
using std::endl;

int main()
{
    std::string str = R"({"姓名":"小明", "年龄":18, "成绩":[76.5, 55, 88]})";
    Json::CharReaderBuilder srb;
    std::unique_ptr<Json::CharReader> sr(srb.newCharReader());
    Json::Value val;
    std::string err;
    bool re = sr->parse(str.c_str(), str.c_str() + str.size(), &val, &err); // Json格式字符串，反序列化成Value对象，
    if (!re)
    {
        perror("reserialize fail");
        cout << err << endl;
        return -1;
    }
    else
    {
        cout << val["姓名"].asString() << endl;
        cout << val["年龄"].asInt() << endl;
        // 方法一：
        size_t sz = val["成绩"].size();
        for (int i = 0; i < sz; i++)
        {
            cout << val["成绩"][i].asFloat() << endl;
        }
        // 方法二：
        for (auto it = val["成绩"].begin(); it != val["成绩"].end(); it++)
        {
            cout << *it << endl;
        }
    }

    return 0;
}